import java.util.Objects;


public class HashMap2<K,V> {
    @Override
    public int hashCode() {
        return super.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    class Node<K,V>{
    public K key;
    public V val;
    Node<K,V> next;

    public Node(K key, V val) {
        this.key = key;
        this.val = val;
    }
}
public Node<K,V>[] array ;
//public Node[] array ;
public int usesize;
public static float DEFAULT_LOAD_FACTOR = 0.75f;

    public HashMap2 (){
        this.array = (Node<K, V>[])new Node[10];
    }
    public void put(K key,V val){
        int hash = key.hashCode();
        int index = hash% array.length;
        Node<K,V> cur = array[index];
        while(cur != null){
           if(cur.key.equals(key)){
               cur.val=val;
               return;
           }
           cur = cur.next;
        }
        Node<K,V> node = new Node(key,val);
        node.next = array[index];
        array[index] = node;
        usesize++;
    }
    public V get (K key){
        int hash = key.hashCode();
        int index = hash%hashCode();
        Node<K,V> cur = array[index];
        while(cur !=null){
            if(cur.key.equals(key)){
                return  cur.val;
            }
            cur = cur.next;
        }
        return null;
    }


    public static void main(String[] args) {

    }
}
